package main;

import org.htmlparser.Node;
import org.htmlparser.Parser;
import org.htmlparser.util.NodeList;
import org.htmlparser.util.ParserException;

public class ParseadorRankingJugador {
	
	private Parser parser;
	private PuntuacionGeneralJugador jugadorGeneral;
	
	public ParseadorRankingJugador(String url) throws ParserException {
	
		parser = new Parser(url);
		NodeList list = parser.parse (null);
		Node node = list.elementAt(0);
		//System.out.println(node);
		node = list.elementAt(1);
		//System.out.println(node);
		node = list.elementAt(2);
		//System.out.println(node);
		NodeList sublist = node.getChildren ();
		//System.out.println(sublist.elementAt(0));
		Node aux = sublist.elementAt(1);
		NodeList sub = aux.getChildren();
		//System.out.println(sub.elementAt(1));
		Node aux1 = (sub.elementAt(1));
		NodeList sub1 = aux1.getChildren();
		//System.out.println(sub1.elementAt(1));
	
		Node aux2 = sub1.elementAt(1);
		NodeList sub2 = aux2.getChildren();
		//System.out.println(sub2.elementAt(5));
	
		//HASTA AQUI PARECE SIMILAR EN TODAS LAS PAGINAS
	
		Node aux3 = sub2.elementAt(5);
		NodeList sub3 = aux3.getChildren();
		//System.out.println(sub3.elementAt(5));
	
		Node resultados = sub3.elementAt(5);
		NodeList result = resultados.getChildren();
		//System.out.println(result.elementAt(2));
		
		Node identificador = result.elementAt(2);
		String[] id1 = identificador.toPlainTextString().split("for ");
		String[] id2 = id1[1].split(" ");
		
		//creamos jugador
		jugadorGeneral = new PuntuacionGeneralJugador();
		jugadorGeneral.setIdentificador(id2[0]);
	
		Node estadisticas = result.elementAt(6);
		NodeList listestad = estadisticas.getChildren();
		String victorias = listestad.elementAt(25).toPlainTextString();
		String derrotas = listestad.elementAt(27).toPlainTextString();
		if(victorias.contains(",")) {
			String[] vic = victorias.split(",");
			jugadorGeneral.setVictorias(Integer.parseInt(vic[0]+vic[1]));
		}
		else  {
			jugadorGeneral.setVictorias(Integer.parseInt(victorias));
		}
		if(derrotas.contains(",")) {
			String[] der = derrotas.split(",");
			jugadorGeneral.setDerrotas(Integer.parseInt(der[0]+der[1]));
		}
		else  {
			jugadorGeneral.setDerrotas(Integer.parseInt(derrotas));
		}
		//int victorias = Integer.parseInt(listestad.elementAt(25).toPlainTextString());
	
	
		//System.out.println(sub3.elementAt(15));
		Node ratings = sub3.elementAt(15);
		NodeList listaratings = ratings.getChildren();

		//
		Node ratingDM = listaratings.elementAt(8);
		NodeList listaratingDM = ratingDM.getChildren();
		jugadorGeneral.setRatingWeek(Float.parseFloat(listaratingDM.elementAt(5).toPlainTextString()));
		jugadorGeneral.setRatingMonth(Float.parseFloat(listaratingDM.elementAt(11).toPlainTextString()));
		jugadorGeneral.setRatingAll(Float.parseFloat(listaratingDM.elementAt(17).toPlainTextString()));
		//System.out.println(listaratingDM.elementAt(17));
	}

	public PuntuacionGeneralJugador getJugadorGeneral() {
		return jugadorGeneral;
	}

	public void setJugadorGeneral(PuntuacionGeneralJugador jugadorGeneral) {
		this.jugadorGeneral = jugadorGeneral;
	}

}
